Data compression is an important computer operation used in many computing applications, including both server and client applications. For example, data compression may be used to reduce network bandwidth requirements and/or storage requirements for cloud computing applications. Many common lossless compression formats are based on the LZ77 compression algorithm. Typically high-performance compression hardware will contain a number of at least partially asynchronous machines. The timing of one of these machines with respect to a different machine may change slightly, resulting in slightly different output. Software, such as the abovementioned compression formats, may be unaware of these underlying micro-architectural details in the hardware. As a result, many compression formats result in non-deterministic outputs. In other words, for a given input, many different valid compressed outputs may result, each of which can be decompressed to the original input.